package cn.iocoder.yudao.module.erp.controller.admin.purchaseorder.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 采购订单 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PurchaseOrderRespVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20499")
    @ExcelProperty("id")
    private Long id;

    @Schema(description = "销售单id")
    private Long saleId;

    @Schema(description = "销售单号")
    private String saleNo;

    @Schema(description = "采购单号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("采购单号")
    private String billNo;

    @Schema(description = "采购日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("采购日期")
    private LocalDateTime billDate;

    @Schema(description = "采购方")
    @ExcelProperty("采购方")
    private String billContacter;

    @Schema(description = "采购联系人", example = "芋艿")
    @ExcelProperty("采购联系人")
    private String billContacterName;

    @Schema(description = "采购电话")
    @ExcelProperty("采购电话")
    private String billContacterMobile;

    @Schema(description = "仓库id", example = "20405")
    @ExcelProperty("仓库id")
    private Integer warehouseId;

    @Schema(description = "仓库名称", example = "王五")
    @ExcelProperty("仓库名称")
    private String warehouseName;

    @Schema(description = "订单号")
    @ExcelProperty("订单号")
    private String supplierOrderNo;

    @Schema(description = "供应商id", example = "974")
    @ExcelProperty("供应商id")
    private Long supplierId;

    @Schema(description = "供应商名称（公司）", example = "张三")
    @ExcelProperty("供应商名称（公司）")
    private String supplierName;

    @Schema(description = "供应商联系人", example = "王五")
    @ExcelProperty("供应商联系人")
    private String supplierContacterName;

    @Schema(description = "供应商联系电话")
    @ExcelProperty("供应商联系电话")
    private String supplierMobile;

    @Schema(description = "总数量")
    @ExcelProperty("总数量")
    private BigDecimal aggregateQuantity;

    @Schema(description = "总金额")
    @ExcelProperty("总金额")
    private BigDecimal aggregateAmount;

    @Schema(description = "优惠金额")
    @ExcelProperty("优惠金额")
    private BigDecimal discountAmount;

    @Schema(description = "优惠后总金额")
    @ExcelProperty("优惠后总金额")
    private BigDecimal totalAmount;

    @Schema(description = "交付地址")
    @ExcelProperty("交付地址")
    private String deliveryAddress;

    @Schema(description = "物品信息（名称+数量）")
    @ExcelProperty("物品信息（名称+数量）")
    private String goodsInfo;

    @Schema(description = "项目id", example = "14415")
    @ExcelProperty("项目id")
    private Integer projectId;

    @Schema(description = "项目名称", example = "王五")
    @ExcelProperty("项目名称")
    private String projectName;

    @Schema(description = "结算方式id", example = "21666")
    @ExcelProperty("结算方式id")
    private Integer settlementId;

    @Schema(description = "结算方式", example = "芋艿")
    @ExcelProperty("结算方式")
    private String settlementName;

    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String remarks;

    @Schema(description = "附件")
    @ExcelProperty("附件")
    private String file;

    @Schema(description = "是否采购", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否采购")
    private Boolean syncPurchase;

    @Schema(description = "是否付款", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否付款")
    private Boolean syncPay;

    @Schema(description = "是否入库", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否入库")
    private Boolean syncIn;

    @Schema(description = "是否开票", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否开票")
    private Boolean syncInvoice;

    @Schema(description = "添加时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("添加时间")
    private LocalDateTime createTime;

}